SELECT問合せによってキャッシュ・グループ表でデータを検出できない場合に、Oracle表からキャッシュ・グループ表へデータを自動的にロードするようにTimesTenを設定できます。AUTOREFRESHキャッシュ・グループ以外のすべてのタイプのキャッシュ・グループを、透過的ロードが実行できるように設定できます。
透過的ロードは、キャッシュの内容が動的な場合に特に有効です。たとえば、この機能を使用すると、すでにエージングによって削除されてしまったデータをロードできます。「キャッシュ・グループでのエージングの実装」を参照してください。
この項の内容は次のとおりです。
透過的ロードは、次のタイプのSELECT文に使用できます。
SELECT問合せは、次の条件を満たす必要があります。
選択された行をSELECT問合せが返すと、主キーと外部キーの関係を維持するために、キャッシュ・インスタンス全体がロードされます。キャッシュ・グループ定義を満たす行のみがロードされます。キャッシュ・グループが時間ベースのエージングを有効にしている場合は、行はエージング・ポリシーを満たす必要があります。
データを透過的にロードするには、TransparentLoad Cache Connect属性を1に設定します。これにより、Oracle表でSELECT文が実行できるようになります。結果として得られたデータがキャッシュ・グループ表にロードされます。その後、このデータは、キャッシュ・グループ表で実行された元のSELECT文によって透過的に返されます。
次の表に、TransparentLoadの設定の概要を示します。
0 | 透過的ロードは使用しません。(デフォルト) |
1 | エラーまたは警告メッセージを発行することなく、TimesTenでSELECT文を実行します。 |
2 | SELECT処理が透過的ロードを使用できない場合は、エラーを返します。SELECT処理は、TimesTenで使用可能なデータに基づいて実行されます。 |
透過的ロードを有効にする別の方法は、SQLSetConnectOption ODBC関数を使用して、TT_TRANSPARENT_LOAD ODBC接続オプションを設定することです。この設定は、接続全体に適用されます。
ttOptSetFlag組込みプロシージャのTransparentLoad
フラグを使用することにより、特定のトランザクションのTransparentLoad属性またはTT_TRANSPARENT_LOAD ODBCオプションを上書きできます。文が準備され、実行時に変更できない場合に、TransparentLoad
フラグ値は有効になります。トランザクションがコミットまたはロールバックされると、接続設定が再び有効になります。